\begin{problem}{Справедливый дележ}{fair.in}{fair.out}{2 секунды}{256 мегабайт}

--- Я  хотел  честно, --- сказал Балаганов, собирая деньги с
кровати, --- по  справедливости.   

В коробке от сигарет <<Кавказ>>, отнятой у Корейко, было всего 
$1\leq N\leq 15$ купюр, каждая номиналом $1 \le a_i \le 10^3$. Разделить надо было
на $1\leq K \leq 100$ частей, причём известно, что общая сумма делится на $K$.
Метод деления <<по справедливости>> следующий: если разделить поровну не 
получается, то делить следует так, чтобы среднеквадратичное отклонение 
было минимальным.

Среднеквадратичное отклонение для данного способа дележа определяется
следующим образом. Пусть $i$-й человек получил сумму денег, равную
$S_i$. Обозначим за $M$ среднее арифметическое сумм денег, полученных
каждым: $M=(\sum_{i=1}^K S_i)/K$. Тогда среднеквадратичное отклонение
можно вычислить так: $\sigma=\sqrt{(\sum_{i=1}^K (S_i-M)^2)/K}$.

--- И как? --- поинтересовался Остап.

--- Сложно\ldots  --- вздохнул Шура. 

Попробуйте и вы разделить деньги <<по справедливости>>.
 

\InputFile

В первой строке входного файла задано $N$ --- количество купюр и $K$ --- количество 
участников дележа. Далее, в следующей строке, заданы $N$ целых чисел
$a_i$ --- номиналы купюр.

\OutputFile

В первой строке выведите искомое среднеквадратичное отклонение
с точностью до шести знаков после десятичной точки,
в следующей строке выведите $N$ чисел от $1$ до $K$ --- номер участника дележа, 
которому досталась $i$-я купюра. Если оптимальных решений несколько,
разрешается выводить любое.

\Example

\begin{example}
\exmp{
4 3
1 2 3 6
}{
1.414214
2 2 1 3
}%
\end{example}

\Note

В данной задаче три подзадачи:
\begin{enumerate}
\item $K \le 2$ --- 20 баллов.
\item $1\le K\le N\le 10$ --- 30 баллов.
\item $1\le N\le 15$, $1\le K\le 100$ --- 50 баллов.
\end{enumerate}

\end{problem}
